//递归求 N 的阶乘


//import java.util.Scanner;
//
//public class code {
//    public  static int fac(int n) {
//        if(n==1)
//            return 1;
//        else
//            return n*fac(n-1);
//    }
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int n= sc.nextInt();
//        System.out.println(fac(n));
//    }
//}

import java.util.Scanner;

//递归求和
//public class code {
//    public static int sum(int n) {
//        if(n==1)
//            return 1;
//        else
//            return n+sum(n-1);
//    }
//
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int n= sc.nextInt();
//        System.out.println(sum(n));
//    }
//}

//递归打印数字的每一位1234
//public class code {
//    public static void print(int n) {
//        if(n<10)
//            System.out.print(n);
//        else {
//            print(n/10);
//            System.out.print(n%10);
//        }
//
//    }
//
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int n= sc.nextInt();
//        print(n);
//    }
//}

//返回的数字之和
//public class code {
//    public static int sum(int n) {
//        if(n<10)
//            return n;
//        else
//            return n%10+sum(n/10);
//    }
//
//    public static void main(String[] args) {
//        Scanner sc= new Scanner(System.in);
//        int n=sc.nextInt();
//        System.out.println(sum(n));
//    }
//}

//递归求斐波那契数列的第 N 项
//public class code {
//    public static int fib(int n) {
//        if(n<=2)
//            return 1;
//        else
//            return fib(n-1)+fib(n-2);
//    }
//
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int n= sc.nextInt();
//        System.out.println(fib(n));
//    }
//}

//递归求解汉诺塔问题
//第一步
//把n-1个模块 从塔1移动到塔2
//把第n个模块 从塔1移动到塔3
//第二步
//把n-1个模块 从塔2移动到塔3
public class code {
    public static void hanno(int n,char pos1,char pos2,char pos3) {
        //pos1：起始位置
        //pos2：中转位置
        //pos3：目标位置
        if(n==1) {
            System.out.print(pos1+"->"+pos3+' ');
            return;
        }
        else {
            hanno(n-1,pos1,pos3,pos2);
            System.out.print(pos1+"->"+pos3+' ');
            hanno(n-1,pos2,pos1,pos3);
        }

    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        hanno(n,'A','B','C');
    }
}